<template>
	<div>
		1111111111
	</div>
</template>

<script>
	/**
	 * let命令、const命令、解构赋值、字符串模板、函数参数的默认值、rest参数、扩展运算符、箭头函数、Iterator
	 * for...of循环、Promise对象、Module、Array.prototype.includes、Array.prototype.at、Object.entries、Object.values
	 * 一、、let命令和const命令区别（这两是es6才出现的es5用的是var）
	 * 	var：
	 * 		1、可以重复定义，后者覆盖前者
	 * 		2、遵循函数作用域、全局变量（全局作用域，会被挂载到全局对象，如window）
	 * 			就是函数中定义，函数外无法访问
	 * 		3、作用域泄漏
	 * 			在块级作用域（for、if中定义）会泄漏到外层作用域
	 * 		4、变量提升（会提升到当前作用域的顶部（块级除外））
	 * 			变量定义会提升到作用域顶部
	 * 			console.log(a)-----undefin,若没定义会报错
	 * 			var a = 1;
	 * 			声明变量之后，会被函数声明覆盖
	 * 	let：
	 *  	1、是块级作用域（就是大括号），不存在泄漏
	 *  	2、不可以重复定义
	 *  	3、不会变量提升，存在暂时性死区（函数中的参数，形参，默认就是let类型的，会有死区这一说法）（没执行该函数，就不会报错）
	 * 			其实是存在变量提升的，但是在提升后会被锁住（访问会报错），一直到代码运行到声明语句执行结束
	 * 		4、可以在全局定义域里声明，但是和var不一样，不会成为全局对象的属性
	 * 		5、let x=x也会报错，需要在语句结束之后！！才不会报错
	 * 	const：
	 *  	1、类似于java的final关键字加let
	 * 			声明时初始化，不可重新赋值
	 * 			对象属性可修改
	 * 		2、在for（const item of array）、for in中可用，for中不可用
	 * 			for in和of 会创建不同的块级，里面的每一个item都是新的，都不在同一块中
	 * 
	 */
	//let
		let a=[];
		for(let i=0;i<10;i++){//如果是var i=0,输出就是10
			a[i]=function(){
				console.log(i);
			}
		}
		a[6];//6
	
</script>

<style>
</style>